Linux webm002.cluster126.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64
/
home
/
ariannadhf
/
www
/
wp-content
/
plugins
/
admin-menu-editor
/
customizables
/
Settings
/
/home/ariannadhf/www/wp-content/plugins/admin-menu-editor/customizables/Settings/EnumSetting.php
<?php namespace YahnisElsts\AdminMenuEditor\Customizable\Settings; use YahnisElsts\AdminMenuEditor\Customizable\Controls\ChoiceControlOption; use YahnisElsts\AdminMenuEditor\Customizable\Schemas\Enum; use YahnisElsts\AdminMenuEditor\Customizable\Settings\WithSchema\SingularSetting; use YahnisElsts\AdminMenuEditor\Customizable\Storage\StorageInterface; /** * A wrapper for a setting with an enum schema. */ class EnumSetting extends SingularSetting { public function __construct($id, StorageInterface $store, $enumValues, $params = array()) { if ( empty($enumValues) ) { throw new \InvalidArgumentException('Enum must have at least one possible value'); } $schema = (new Enum())->values(array_values($enumValues)); if ( array_key_exists('default', $params) ) { $schema->defaultValue($params['default']); } parent::__construct($schema, $id, $store, $params); } public function isChoiceEnabled($value) { $schema = $this->getSchema(); if ( $schema instanceof Enum ) { return $schema->isValueEnabled($value); } return true; //Should never happen, but just in case. } /** * @param mixed $value * @param string|null $label * @param string|null $description * @param bool|callable|null $state * @param string|null $icon * @return $this */ public function describeChoice($value, $label, $description = '', $state = null, $icon = null) { $schema = $this->getSchema(); if ( $schema instanceof Enum ) { $schema->describeValue($value, $label, $description, $state, $icon); } return $this; } /** * Automatically generate dropdown/radio/etc options from the setting's * possible values. * * Will use custom labels/descriptions if available. * * @return ChoiceControlOption[] */ public function generateChoiceOptions() { return ChoiceControlOption::fromEnumSetting($this); } /** * @return array */ public function getEnumValues() { $schema = $this->getSchema(); if ( $schema instanceof Enum ) { return $schema->getEnumValues(); } return []; } public function getChoiceDetails($value) { $schema = $this->getSchema(); if ( $schema instanceof Enum ) { return $schema->getValueDetails($value); } return null; } }